package com.duan.laugh.activiti.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.duan.laugh.activiti.pojo.dto.ProcessDefDTO;

import java.io.InputStream;
import java.util.Map;

/**
 * 流程 service
 *
 * @author duanjw
 */
public interface ProcessService {

    /**
     * 分页流程列表
     *
     * @param params
     * @return
     */
    IPage<ProcessDefDTO> selectPage(Map<String, Object> params);

    /**
     * 读取xml/image资源
     *
     * @param procDefId
     * @param proInsId
     * @param resType
     * @return
     */
    InputStream readResource(String procDefId, String proInsId, String resType);

    /**
     * 更新状态
     *
     * @param status
     * @param procDefId
     * @return
     */
    Boolean updateStatus(String status, String procDefId);

    /**
     * 删除流程实例
     *
     * @param deploymentId
     * @return
     */
    Boolean removeProcIns(String deploymentId);

    /**
     * 启动流程
     *
     * @param processId
     * @return
     */
    Boolean startProcess(String processId);

    /**
     * 分页查询流程下的所有任务
     *
     * @param processId
     * @param params
     * @return
     */
    IPage selectTaskPageByProcessId(String processId, Map<String, Object> params);
}
